// 接口
/**
 * 对对象的形状进行描述
 * 对类的一部分行为进行抽象
 * 父接口可以有多个，但父类只能有一个：多实现、单继承
 */

//  一个类可以实现一个接口
interface Alarm {
  alert(): any
}

class Door {}
//  一个类可以继承于另一个类
class SecurityDoor extends Door implements Alarm {
  alert () {
    console.log('SecurityDoor alert')
  }
}


// 一个类可以实现多个接口
class Car implements Alarm {
  alert() {
    console.log('Car alert')
  }
}

interface Light {
  lightOn(): void;
  lightOff(): void;
}

class Car2 implements Alarm, Light {
  alert() {
    console.log('Car alert')
  }
  lightOn() {
    console.log('Car light on');
  }
  lightOff() {
    console.log('Car light off')
  }
}

// 接口继承接口
interface LightableAlarm extends Alarm, Light {
  
}

